package szoftlab4;

/**
 * A bemenetek és kimenetek ősosztálya, tartalmaz egy logikai értéket, valamint
 * ismeri a szülő építőelemét.
 * @author Peti
 */
@SuppressWarnings("LeakingThisInConstructor")
public abstract class Csatlakozo
{

    /**
     * A csatlakozó értéke.
     */
    protected Boolean ertek;
    private Epitoelem szulo;

    /**
     * A csatlakozó konstruktora.
     */
    public Csatlakozo()
    {
        //Logger.log(this, HivasTipus.Create, "Csatlakozo", "Csatlakozo()");
        //Logger.log(this, HivasTipus.Return, "Csatlakozo", "Csatlakozo()");
    }

    /**
     * Visszaadja a csatlakozó értékét.
     *
     * @return
     * A csatlakozó értéke.
     */
    public Boolean getErtek()
    {
        Logger.log(this, HivasTipus.Call, "Csatlakozo", "Boolean getErtek()");
        Logger.log(this, HivasTipus.Return, "Csatlakozo", "Boolean getErtek()");
        return null;
    }

    /**
     * Az adott csatlakozónak beállítja az értékét.
     *
     * @param ertek
     * A csatlakozó új értéke.
     */
    public abstract void setErtek(Boolean ertek);

    /**
     * Visszaadja a csatlakozó szülő építőelemét.
     *
     * @return 
     * A csatlakozóhoz szülő építőeleme.
     */
    public Epitoelem getSzulo()
    {
        Logger.log(this, HivasTipus.Call, "Csatlakozo", "Epitoelem getSzulo()");
        try
        {
            return ((Epitoelem) Logger.objektumvalasztas("Melyik sorszámú objektum a szülő?"));
        }
        catch (Exception e)
        {
            return null;
        }
        finally
        {
            Logger.log(this, HivasTipus.Return, "Csatlakozo", "Epitoelem getSzulo()");
        }
    }
}
